﻿// -------------------------------------------------------------------------
//    @FileName         :    NFOnlineRole.h
//    @Author           :    Gao.Yi
//    @Date             :    2025-08-26
//    @Email			:    445267987@qq.com
//    @Module           :    NFOnlineRole
//    @Desc             :
//
// -------------------------------------------------------------------------

#pragma once

#include "NFComm/NFObjCommon/NFObject.h"
#include "NFLogicCommon/NFLogicShmTypeDefines.h"

namespace proto_ff
{
    class RoleOne;
}

class NFOnlineRole : public NF_OBJECT_TEMPLATE_MACRO(NFOnlineRole, EOT_ONLINE_ROLE_ID, NFObject)
public:
    NFOnlineRole();
    ~NFOnlineRole() override;
    int CreateInit();
    int ResumeInit();
public:
    uint64_t GetRoleId() const { return m_roleId; }
    void SetRoleId(uint64_t roleId) { m_roleId = roleId; }
    int GetLogicSvrId() const { return m_logicSvrId; }
    void SetLogicSvrId(int logicSvrId) { m_logicSvrId = logicSvrId; }
    int GetZoneId() const { return m_zoneId; }
    void SetZoneId(int zoneId) { m_zoneId = zoneId; }
    uint64_t GetUin() const { return m_uin; }
    void SetUin(uint64_t uin) { m_uin = uin; }
public:
    int Init(int logicSvrId, const proto_ff::RoleOne& roleOne);
private:
    uint64_t m_roleId;
    int m_logicSvrId;
    int m_zoneId;
    uint64_t m_uin;
};
